package com.song.controller;

import com.song.pojo.Category;
import com.song.pojo.Items;
import com.song.service.CategoryService;
import com.song.service.ItemsService;
import com.song.vo.ItemsVo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 宋超
 * HP - the login name of the current user.
 * 2020/12/28 - the current system date.
 * 16:27 - the current system time.
 */
@Controller
@RequestMapping("/items")
public class GoodsController {

    @Resource
    private ItemsService itemsService;

    @Resource
    private CategoryService categoryService;

    /**
     * 查询商品详情
     * @param id
     * @param model
     * @return
     */
    @RequestMapping("/{id}.html")
    public String detail(@PathVariable Integer id, Model model){
        //调用查询商品详情的方法
        Items items = itemsService.findById(id);
        //将数据放到模型中
        model.addAttribute("items",items);
        return "detail";
    }

    /**
     * 查询全部商品列表
     * @param model
     * @return
     */
    @RequestMapping("/list.html")
    public String list(Model model){
        //调用查询所有商品类型列表的方法
        List<Category> categoryList = categoryService.findCategoryList(null);
        //创建查询条件类
        ItemsVo items = new ItemsVo();
        items.setStatus(3);//可预订
        //查询商品列表
        List<Items> itemsList = itemsService.findItemsList(items);
        //将数据放到模型中
        model.addAttribute("categoryList",categoryList);
        model.addAttribute("itemsList",itemsList);
        return "itemsList";
    }

    /**
     * 根据商品类型查询商品列表
     * @param model
     * @return
     */
    @RequestMapping("/list/{id}")
    public String list(@PathVariable Integer id,Model model){
        //调用查询所有房型列表的方法
        List<Category> categoryList = categoryService.findCategoryList(null);
        //创建查询条件类
        ItemsVo itemsVo = new ItemsVo();
        itemsVo.setTypeId(id);//商品ID
        itemsVo.setStatus(3);//可预订
        //查询商品列表
        List<Items> itemsList = itemsService.findItemsList(itemsVo);
        //将数据放到模型中
        model.addAttribute("categoryList",categoryList);
        model.addAttribute("itemsList",itemsList);
        model.addAttribute("typeId",id);//将当前选中的商品ID保存到模型中，目的是在页面中回显选中的文本(改变选中的颜色)
        return "itemsList";
    }

    /**
     * 通过商城名称查询商品信息
     * @param productName
     * @param model
     * @return
     */
    @RequestMapping("/goods/{productName}")
    public String items(@PathVariable String productName,Model model){
        //通过名称查询商品列表
        List<Items> itemsList =  itemsService.findByName(productName);
        model.addAttribute("itemsList",itemsList);
        return "goodsList";
    }
}
